import java.util.Arrays;

public class Test_7_17_3 {
    //扑克牌顺子:数据保证每组5个数字，每组最多含有4个零，数组的数取值为 [0, 13]
    public static void main(String[] args) {

    }
    public boolean IsContinuous (int[] numbers) {
        //解法1：使用规律:如果能够成顺子，所有非零元素需要满足：
        //(1)不会出现重复元素
        //(2)max-min<=4
//        int max = 0;
//        int min = 14;
//        boolean[] arr = new boolean[14];//用来看当前元素是否已经出现，出现则在该位置为true，用于看是否有重复数字
//        for (int x:numbers) {
//            if (x != 0){
//                if (arr[x]){
//                    return false;//如果当前元素已经出现了，则返回false
//                }
//                arr[x] = true;
//                max = Math.max(max,x);
//                min = Math.min(min,x);
//            }
//        }
//        return max-min<=4;

        //解法2：排序+模拟
        //存在除0以外的重复元素--->false
        //非0相邻元素之间的”差值-1“用相应个0进行填补
        Arrays.sort(numbers);
        int count = 0;
        for (int i = 0; i < 4; i++) {
            if (numbers[i] == 0){
                count++;
            }else {
                if (numbers[i + 1] - numbers[i] == 0){
                    return false;
                }
                int n = numbers[i + 1] - numbers[i] - 1;
                count = count - n;
            }
        }
        if (count < 0){
            return false;
        }else {
            return true;
        }
    }
}
